package com.hckjsec.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hckjsec.common.annotation.Excel;
import com.hckjsec.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
 * 日常申请对象 work_oa_apply
 * 
 * @author cyt
 * @date 2021-06-28
 */
public class WorkOaApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long applyId;

    /** 编号 */
    @Excel(name = "编号")
    private Long applyNumber;

    /** 单据类型 */
    @Excel(name = "单据类型")
    private Integer type;

    /** 请假类型 */
    @Excel(name = "请假类型")
    private Integer leaveType;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date startDate;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date endDate;

    /** 时长 */
    @Excel(name = "时长")
    private Long duration;

    /** 说明 */
    @Excel(name = "说明")
    private String reason;

    /** 异常日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "异常日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date abnormalDate;

    /** 异常类型 */
    @Excel(name = "异常类型")
    private Integer abnormalType;

    /** 目的地 */
    @Excel(name = "目的地")
    private String destination;

    /** 申请人 */
    @Excel(name = "申请人")
    private Long applyName;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 审批人 */
    @Excel(name = "审批人")
    private Long approvalName;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvalTime;

    /** 审批结果 */
    @Excel(name = "审批结果")
    private Integer approvalResult;

    /** 审批意见 */
    @Excel(name = "审批意见")
    private String approvalOpinion;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operTime;

    public void setApplyId(Long applyId) 
    {
        this.applyId = applyId;
    }

    public Long getApplyId() 
    {
        return applyId;
    }
    public void setApplyNumber(Long applyNumber) 
    {
        this.applyNumber = applyNumber;
    }

    public Long getApplyNumber() 
    {
        return applyNumber;
    }
    public void setType(Integer type) 
    {
        this.type = type;
    }

    public Integer getType() 
    {
        return type;
    }
    public void setLeaveType(Integer leaveType) 
    {
        this.leaveType = leaveType;
    }

    public Integer getLeaveType() 
    {
        return leaveType;
    }
    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }
    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }
    public void setDuration(Long duration) 
    {
        this.duration = duration;
    }

    public Long getDuration() 
    {
        return duration;
    }
    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }
    public void setAbnormalDate(Date abnormalDate) 
    {
        this.abnormalDate = abnormalDate;
    }

    public Date getAbnormalDate() 
    {
        return abnormalDate;
    }
    public void setAbnormalType(Integer abnormalType) 
    {
        this.abnormalType = abnormalType;
    }

    public Integer getAbnormalType() 
    {
        return abnormalType;
    }
    public void setDestination(String destination) 
    {
        this.destination = destination;
    }

    public String getDestination() 
    {
        return destination;
    }
    public void setApplyName(Long applyName) 
    {
        this.applyName = applyName;
    }

    public Long getApplyName() 
    {
        return applyName;
    }
    public void setApplyTime(Date applyTime) 
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() 
    {
        return applyTime;
    }
    public void setApprovalName(Long approvalName) 
    {
        this.approvalName = approvalName;
    }

    public Long getApprovalName() 
    {
        return approvalName;
    }
    public void setApprovalTime(Date approvalTime) 
    {
        this.approvalTime = approvalTime;
    }

    public Date getApprovalTime() 
    {
        return approvalTime;
    }
    public void setApprovalResult(Integer approvalResult) 
    {
        this.approvalResult = approvalResult;
    }

    public Integer getApprovalResult() 
    {
        return approvalResult;
    }
    public void setApprovalOpinion(String approvalOpinion) 
    {
        this.approvalOpinion = approvalOpinion;
    }

    public String getApprovalOpinion() 
    {
        return approvalOpinion;
    }
    public void setOperTime(Date operTime) 
    {
        this.operTime = operTime;
    }

    public Date getOperTime() 
    {
        return operTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("applyId", getApplyId())
            .append("applyNumber", getApplyNumber())
            .append("type", getType())
            .append("leaveType", getLeaveType())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("duration", getDuration())
            .append("reason", getReason())
            .append("abnormalDate", getAbnormalDate())
            .append("abnormalType", getAbnormalType())
            .append("destination", getDestination())
            .append("applyName", getApplyName())
            .append("applyTime", getApplyTime())
            .append("approvalName", getApprovalName())
            .append("approvalTime", getApprovalTime())
            .append("approvalResult", getApprovalResult())
            .append("approvalOpinion", getApprovalOpinion())
            .append("operTime", getOperTime())
            .toString();
    }
}
